package com.smartcommunity.service.village;

import com.alibaba.fastjson.JSONObject;
import com.smartcommunity.bean.model.Pager;
import com.smartcommunity.entity.village.Equipment;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: RealPowerEquipService
 * @Description:  实有力量实有装备业务层接口
 * @author: minsheng
 * @Date: 2019/1/5 12:06
 * @Company:
 * @version V1.5.0
 */
 public interface RealPowerEquipService {

    /**
     * 根据小区编号，获取实有力量分类及数量
     *
     * @param map
     * @return
     */
     List<Map<String, Object>> countRealPowerByLabel(Map<String, Object> map);

    /**
     * /**
     * 根据小区编号、标签获取实有力量
     *
     * @param map
     * @param currentPage
     * @param pageSize
     * @return
     */
     Pager<Map<String,Object>> pageRealPowerGroupByLabel(Map<String, String> map, int currentPage, int pageSize);

    /**
     * 实有力量发现，包括:wifi的mac,人脸抓拍
     * @param map
     * @return
     */
     List<Map<String,Object>> listRealPowerDiscovery(Map<String, String> map);

    /**
     * 实有装备分页列表
     *
     * @param map
     * @param currentPage
     * @param pageSize
     * @return
     */
     Pager<Equipment> pageEquipments(Map<String, Object> map, int currentPage, int pageSize);

    /**
     * @Description: 新增实有装备
     * @param: Equipment
     * @return: JSONObject
     * @author: minsheng
     * @date: 2018/12/21 14:11
     */
    JSONObject insertRealEquipment(Equipment equipment);
    /**
     * @Description: 修改实有装备
     * @param: Map<String, Object> paramMap
     * @return: JSONObject
     * @author: minsheng
     * @date: 2018/12/21 14:12
     */
    JSONObject updateRealEquipment(Equipment equipment);
    /**
     * @Description: 删除实有装备
     * @param: id
     * @return: JSONObject
     * @author: minsheng
     * @date: 2018/12/21 14:13
     */
    JSONObject deleteRealEquipment(String id);
    /**
     * @Description: 查询实有装备集合
     * @param:
     * @return:
     * @author: minsheng
     * @date: 2019/1/5 12:06
     */
	 Pager<Equipment> queryEquipmentList(Map<String, Object> map, int pageNumber, int pageSize);

    /**
     * 分组统计实有力量
     * @param param 请求参数
     * @return 实有力量统计
     */
    List<Map<String,Object>> listRealPowerStatisticGroup(Map<String, Object> param);

    /**
     * @Description: 根据小区查询实有力量
     * @param: recordMap
     * @return: List<Map<String,Object>>
     * @author: minsheng
     * @date: 2019/1/5 12:00
     */
    List<Map<String,Object>> listRealPowerGroupByVillage(Map<String, Object> recordMap);

    /**
     * @Description: 根据小区查询实有装备
     * @param: recordMap
     * @return: List<Map<String,Object>>
     * @author: minsheng
     * @date: 2019/1/5 12:01
     */
    List<Map<String,Object>> listRealEquipmentGroupByVillage(Map<String, Object> recordMap);


    /**
     * @Description: 统计实有装备数量
     * @param: map
     * @return: int
     * @author: minsheng
     * @date: 2019/1/5 11:58
     */
    int countEquipments(Map<String, Object> map);
}
